import os


def get_project_path():
    """
    获取项目的绝对路径。

    :return: 项目根目录的绝对路径
    """
    # 通过获取当前文件所在目录的父目录来确定项目根路径
    return os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))


def build_path(*path, add_sep_before=False):
    """
    构建一个路径字符串。

    :param path: 需要拼接的路径组件，可以是多个子目录
    :param add_sep_before: 如果为True，在构建的路径前添加一个路径分隔符
    :return: 拼接后的路径字符串
    """
    # 使用 os.sep.join() 将传入的路径组件用系统特定的路径分隔符拼接
    all_path = os.sep.join(path)

    # 如果需要在路径前添加分隔符，进行相应处理
    if add_sep_before:
        all_path = os.sep + all_path  # 在拼接后的路径前加上分隔符

    return all_path


if __name__ == '__main__':
    # 打印项目的绝对路径
    print(get_project_path())

    # print(os.path.abspath(__file__))

    # 打印拼接后的路径，前面添加了路径分隔符
    print(get_project_path() + build_path('common', 'tools', add_sep_before=True))
